home *** CD-ROM | disk | FTP | other *** search
- String.prototype.isEmail = function()
- {
- var ref = arguments.callee;
- if(this.indexOf("@") == -1)
- {
- return false;
- }
- if(!isNaN(this.charAt(0)))
- {
- return false;
- }
- var email;
- var user;
- var domain;
- var user_dots;
- var domain_dots;
- if(email = this.split("@").length == 2)
- {
- if((domain = email[1]).split(".").pop().length > 4)
- {
- return false;
- }
- if(domain.split(".").length < 2)
- {
- return false;
- }
- if((user = email[0]).indexOf(".") && domain.indexOf("."))
- {
- if(user.length == 1 || domain.length == 1)
- {
- return false;
- }
- if(domain.lastIndexOf(".") > domain.length - 3)
- {
- return false;
- }
- var _loc1_ = undefined;
- var _loc3_ = undefined;
- var _loc2_ = user_dots = user.split(".").length;
- while(true)
- {
- _loc2_;
- if(!_loc2_--)
- {
- break;
- }
- _loc1_ = user_dots[_loc2_];
- _loc3_ = !ref.$_text.call(_loc1_,"-",".","_");
- if(_loc3_ || !isNaN(_loc1_))
- {
- return false;
- }
- }
- _loc2_ = domain_dots = domain.split(".").length;
- while(true)
- {
- _loc2_;
- if(!_loc2_--)
- {
- break;
- }
- _loc1_ = domain_dots[_loc2_];
- _loc3_ = !ref.$_text.call(_loc1_,"-",".");
- if(_loc3_ || !isNaN(_loc1_))
- {
- return false;
- }
- }
- return true;
- }
- return false;
- }
- return false;
- };
- String.prototype.isEmail.$_punctuation = function()
- {
- var _loc2_ = this;
- var _loc3_ = arguments;
- if(_loc2_ == "")
- {
- return false;
- }
- var _loc1_ = _loc3_.length;
- while(true)
- {
- _loc1_;
- if(!_loc1_--)
- {
- break;
- }
- if(_loc2_.indexOf(_loc3_[_loc1_]) == 0)
- {
- return false;
- }
- if(_loc2_.indexOf(_loc3_[_loc1_]) == _loc2_.length - 1)
- {
- return false;
- }
- }
- return true;
- };
- String.prototype.isEmail.$_text = function()
- {
- var ref = arguments.caller;
- if(!ref.$_punctuation.apply(this,arguments))
- {
- return false;
- }
- var others = arguments;
- var checkOthers = function(str)
- {
- var _loc2_ = str;
- var _loc1_ = others.length;
- while(true)
- {
- _loc1_;
- if(!_loc1_--)
- {
- break;
- }
- if(_loc2_ == others[_loc1_])
- {
- return true;
- }
- }
- return false;
- };
- var _loc1_ = undefined;
- var alpha;
- var _loc3_ = undefined;
- var _loc2_ = this.length;
- while(true)
- {
- _loc2_;
- if(!_loc2_--)
- {
- break;
- }
- _loc1_ = this.charAt(_loc2_).toLowerCase();
- alpha = _loc1_ <= "z" && _loc1_ >= "a";
- _loc3_ = _loc1_ <= "9" && _loc1_ >= "0";
- if(!alpha && !_loc3_ && !checkOthers(_loc1_))
- {
- return false;
- }
- }
- return true;
- };
- var _trace = function(address)
- {
- return "(" + address + "): " + address.isEmail();
- };
-